1. Field of the Invention
The invention relates generally to maximum a posteriori (MAP) detectors and more particularly to processing engines utilized in the MAP detectors.
2. Background Information
MAP detectors are used in decoding operations that produce soft values for the bits of a data block. The soft values consist of sign values, or hard decisions, and associated confidence information. The soft values produced by the MAP detector are typically used in a known manner in an iterative decoder that produces decoded data.
The MAP detector processes samples of a received signal in accordance with a multiple-state decoding trellis. Typically, the MAP detector performs both forward and backward processing operations in accordance with the trellis, and then manipulates the results to produce the soft values. The forward processing operations, referred to also as α-processing, process information in a known manner in accordance with paths proceeding in a forward direction through the trellis. Thus, the forward processing operations produce state metrics for time t+1, that is, trellis path location t+1, based on the state metrics previously calculated for time t. For convenience, we refer herein to the state metric values produced by the forward processing operations as “forward state metrics.”
The backward processing operations, also referred to as β-processing, process information in a known manner in accordance with paths proceeding in a backward direction through the trellis. The backward processing operations produce state metrics for time t, based on the state metrics calculated for time t+1. For convenience, we refer to the state metric values produced by the backward processing operations as “backward state metrics.” The MAP detector then manipulates the forward and backward state metrics calculated for corresponding locations and produces the associated soft values.
The forward state metric processing and the backward state metric processing produce the forward and backward state metrics for a given state based on different starting points, or states, of the trellis and different branches of the trellis. The forward processing, for example, calculates the forward state metrics for a given state based on the forward state metrics calculated for the previous states on the two branches leading in the forward direction to the given state. The forward processing then combines, or adds, the calculated forward state metrics, associated branch metrics and apriori values to produce forward sums for the respective branches. Finally, the forward processing compares the two sums and selects the appropriate one, for example, the smaller one, as the forward state metric.
The backward processing calculates the backward state metrics for the given state based on the calculated backward state metrics for the states at the ends of the two branches leading in a backward direction from the given state. The backward processing combines, or adds, the calculated backward state metrics and associated branch metrics and apriori values to produce backward sums for the respective branches. The backward processing then compares the two sums and in the example selects the smaller one as the backward state metric.
The processing operations are performed respectively by forward ACS (add-compare-select) processors and backward ACS processors, in analogy to ACS units in a Viterbi detector. A forward state metric engine includes “j” forward ACS processors, where j is the number of states in the matrix, and a backward state metric engine includes j backward ACS processors.
To avoid large memory requirements and long latencies, MAP detectors perform the forward and backward processing operations over sections of a sector to produce associated soft values. Known MAP detectors utilize a forward state metric engine, that is, a set of j forward ACS processors, and a backward state metric engine, that is, a set of j backward ACS processors, or one set of forward and two sets of backward ACS processors that operate over successive sections of the sector to save memory and shorten the associated latency. In another known implementation multiple MAP detectors are used for parallel processing. Each MAP detector consists of two sets of forward processors and two sets of backward processors to provide a continuous output of the soft values.
The various branch and state metric values that are manipulated in the forward and backward processing are multiple-bit values. Accordingly, the forward and the backward state metric engines each consist of a plurality of multiple-bit adders, multiple-bit comparators and multiple-bit selection multiplexers. The forward and backward state metric engines are thus relatively complex, and expensive, and also relatively large. Accordingly, the use of the multiple state metric engines adds considerably to the complexity, cost and size of the MAP detector.